var express = require("../../express/node_modules/express");
var router = require("./模块文件夹/route模块.js")
var app = express();
var bodyParser=require("../../express/node_modules/body-parser")

app.use("/api/products", (res, req, next) => {
    var str = res.query.category;
    var flag = /([a-z]|[A-Z]|[0-9])+/g.test(str);
    if (flag == false) {
        req.send("类不存在")
    } else if (parseInt(res.query.maxvalue) < parseInt(res.query.minvalue)) {
        req.send("最大值最小值不符合要求")
    } else {
        next();
    }

})

// 1. GET 请求练习：查询商品信息
// 创建一个接收三个参数的 GET 请求，用于查询商品信息。
/**中间件判断输入合法,是表单
 * GET /api/products
 * 查询商品信息
 * 参数:
 *   - category (string): 商品类别
 *   - minPrice (number): 最低价格
 *   - maxPrice (number): 最高价格
 * 返回:
 *   - 符合条件的商品列表
 */



//  2. POST 请求练习：提交表单数据
// 创建一个接收表单数据的 POST 请求，用于创建新用户。
/**
 * POST /api/users (表单数据)
 * 创建新用户
 * 表单数据:
 *   - name (string): 用户姓名
 *   - email (string): 用户邮箱:正则表达式检查
 *   - age (number): 用户年龄:必须是数字
 * 返回:
 *   - 创建的用户信息
 *  */
app.use(bodyParser.json())
app.use("/api/users", (req, res, next) => {
    var name,email,age;
    if(req.body!=undefined){
         name = req.body.name;
          email = req.body.email;
         age = req.body.age;
    }else{
         name = req.query.name;
         email = req.query.email;
          age = req.query.age;
    }
    console.log(name,email,age);
    if( /^([a-z]|[A-Z]|[0-9]|[_]){2,}$/.test(name)&&/^([A-Z|a-z|0-9_\-\.])+\@([A-Z|a-z|0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(email)&&/[0-9]{1,}/.test(age)){
        console.log("通过");
        next();
    }else{
        res.send("输入错误")
    }

    return 0;
})


//  3. POST 请求练习：接收 JSON 数据
// 创建一个接收 JSON 数据的 POST 请求，用于更新用户信息。
/**
 * POST /api/users/:id (JSON 数据)
 * 更新用户信息
 * 参数:
 *   - id (number): 用户ID
 * JSON 数据:
 *   - name (string, optional): 新用户名
 *   - email (string, optional): 新邮箱
 *   - age (number, optional): 新年龄
 * 返回:
 *   - 更新后的用户信息
 */
 app.use(router);//也可以这样(动态url绑定)
app.listen(80, () => {
    console.log("服务器启动");

})
